草庐IT

Android Endless list 内存管理

全部标签

Windows 在管理员重置 PATH 时运行。

我在以管理员身份运行Windows时遇到了一个令人沮丧的问题。我有一个需要以管理员身份运行的程序A。我还有一个程序B,用于管理其他程序的依赖项(主要是它使用正确的环境变量创建命令外壳)。现在我无法控制B程序,但由于某种原因它会在非管理员用户下创建命令外壳,即使我以管理员身份运行它也是如此。因此,当我从命令shell启动程序A时,它失败了,因为它没有以管理员身份运行。如果我使用runas命令以管理员身份运行它,或者如果我将A的属性设置为始终以管理员身份运行,则当它启动时它不会在B创建的环境中启动,因此它不会获取PATH(和其他环境变量)。有人知道是否有办法在保留当前环境变量的同时使用ru

c# - 如何打开 Windows 证书查看器(不是管理器)

这个问题在这里已经有了答案:InvokeWindowsCertificateExportWizard.NET[duplicate](2个答案)关闭2年前。当您在资源管理器中打开.crt文件时,Windows证书查看器会显示证书的详细信息。我需要从.net(c#)打开这个查看器。我发现文件system32\cryptext.dll打开查看器:rundll32.execryptext.dll,CryptExtOpenCER是否有.net代码/类可以直接打开此窗口(或类似窗口),如果没有,我如何在没有rundll32的情况下调用.dll函数?注意:我指的不是certmgr.msc本身。

windows - 用于调试异常内存泄漏的调试技术

我有一个泄漏大量内存的Windows应用程序(旧版)。它不会泄漏私有(private)字节,我只在进程资源管理器中看到它会不时加载相同(局部)Windowsdll-s的许多实例。是否有一种工具可以用来“捕获”dll-s被映射到进程空间的时刻,以便我可以(使用应用程序符号)将其跟踪到源代码? 最佳答案 在ProcessMonitor中,您可以获得每个记录的操作的堆栈跟踪,因此您可以看到谁打开了某个文件。定义一个过滤器,其中包括:Pathcontainsiologgingmsg.dll。如果噪音太大,可以尝试添加过滤器,例如Operat

c# - 扩展 Windows 资源管理器上下文菜单

我很难弄清楚为什么这在我的电脑上不起作用。我读过这篇文章http://msdn.microsoft.com/en-us/library/bb776820.aspx并尝试了它,它适用于未知文件类型,但对于诸如.bmp之类的文件,它不起作用-我还删除了.bmp下的其他键-没有帮助。我在HKEY_CLASSES_ROOT.bmp和HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.bmp中试过这个我需要在我的程序中实现它,以便它在某些文件类型(如bmp)上具有自定义上下文菜单项。顺便提一句

Windows 资源管理器 - 删除上下文菜单中的条目

我正在尝试在Windows资源管理器上下文菜单上进行一些复杂的操作。我有一个编码过程,我想调用任何类型的文件。这个想法是右键单击一个文件,在上下文菜单中获取选项,然后选择。这相对容易做到:HKCR"*\shell\encoding""""用MyEncoder编码"它有效。编码器生成*.encode扩展文件。我想使用相同的机制解码这些文件。这也很简单:HKCR".encode""""encoded.file"HKCR"encoded.file\shell\decode""""用MyEncoder解码"现在基native制已经到位:使用上下文菜单对任何文件进行编码,也使用上下文菜单对这些文

c# - 如何在**没有**管理员权限的情况下获得稳定的机器 ID

出于简单的复制保护目的,我想生成一个小的string或int值来(某种程度上)唯一标识当前计算机。理想情况下,此值不会在简单的硬件外围设备更改后发生变化,甚至希望在完全重新安装Windows后也不会发生变化。在这里和其他地方找到的大多数答案都不令人满意,主要原因有以下三个:提供的代码不容易移植到C#。建议的硬件值通常不可用/为空(例如处理器ID甚至硬盘驱动器序列号)或不稳定(例如MAC地址)。涉及的代码需要更高的管理员权限。我搜索了几篇文章并找到了一篇有用的文章(HowToGetHardwareInformation),但由于#3在我的案例中是一个重要的考虑因素,我不确定我可以仅使用普

Windows 和系统内存

Windows上任何单个进程可以寻址的最大内存量是多少?这与系统的最大虚拟内存不同吗?这将如何影响系统设计? 最佳答案 在32位版本的Windows上,单个进程一次可以映射和寻址不超过3GB的虚拟内存。在64位版本的Windows中,32位进程一次可以映射和寻址不超过4GB的虚拟内存。对于64位进程,该数量很难计算,因为有许多重叠的限制可能适用,具体取决于各种因素。它通常约为7TB。系统的最大虚拟内存量很难计算,也不是一个非常有意义的数字。此外,物理内存的限制与虚拟内存的这些限制无关。您可以在Microsoft页面上阅读更多详细信息

c - 如何获得安装的内存大小?

我想查询安装内存的大小。我使用了上面的代码:voidGetInstalledMemory(char*MemorySize){memset(MemorySize,0,sizeof(MemorySize));MEMORYSTATUSEXstatex;statex.dwLength=sizeof(statex);if(!GlobalMemoryStatusEx(&statex))strcpy(MemorySize,"N/A");elsesprintf(MemorySize,"%I64d",statex.ullTotalPhys/1024/1024);}//GetInstalledMemory

c++ - 堆内存什么时候真正被释放?

我正在使用new分配内存,当我在其中一个方法和析构函数中接收到数据时,我将使用delete释放所有分配的内存。但是,释放内存后,从任务管理器中,在进程选项卡下查看内存使用情况时,内存使用情况仍然保持不变。它不会给人一种正在释放内存的印象。那么,内存什么时候真正被释放?找出进程实际使用的内存的最佳方法是什么。谢谢 最佳答案 在大多数情况下,它不会在应用程序运行时返回给操作系统。之后,当然,所有资源都由操作系统回收。[在评论正确指出“从不”是一个很长的时间后编辑...] 关于c++-堆内存什

c++ - 如何在 Windows 资源管理器中嵌入我的 GUI?

我想向资源管理器(在Windows中)添加一个选项,例如“预览Pane”,但只是一个“编辑Pane”。我的想法是我有要编辑的文本文件,但我不想打开应用程序来编辑文件。我只想在编辑Pane中单击并进行编辑。我可以使用哪些API以这种方式扩展资源管理器有什么建议吗?(不仅仅是“看看shellapi:我有但我不知道哪个能让我完成这个”)。 最佳答案 您必须实现PropertyHandler。请参阅WindowsSDK\Samples\winui\Shell\AppShellIntegration\PropertyHandlers。每个属性